提供下载但不能让用户看到真实地址如何做?
解决方案 »
- MS-SQL 表中一列有"已下单""处理中""已完成"三种,请问如何把数据按照已下单、处理中、已完成来排列
- 浮动层定位问题(急)
- asp.net如何将数据写入二个数据库中
- MemCached的源码如何制作为exe
- 谁能解释下_dopostback?
- 求个正则表达式...在线等...标题要长............................................................
- 存储过程有返回结果集时输出参数不能取得?
- dropdownlist 绑定数据库的某一列后,还想额个加一下,怎么做啊
- ASP.NET 2.0 本地化研究
- 登陆问题,怎么自由登陆?并且在文件夹保护的情况下?
- 火狐浏览器Response.Redirect错误
- 从dataset中选出想的行的前10条记录
using System.Collections;
using System.Configuration;
using System.Data;
using System.IO;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Security.Principal;
using System.Runtime.InteropServices; namespace WebApplication1
{
public partial class _Default : System.Web.UI.Page
{
public const int LOGON32_LOGON_INTERACTIVE = 2;
public const int LOGON32_PROVIDER_DEFAULT = 0; WindowsImpersonationContext impersonationContext; [DllImport("advapi32.dll", CharSet = CharSet.Auto)]
public static extern int LogonUser(String lpszUserName,
String lpszDomain,
String lpszPassword,
int dwLogonType,
int dwLogonProvider,
ref IntPtr phToken);
[DllImport("advapi32.dll", CharSet = CharSet.Auto, SetLastError = true)]
public extern static int DuplicateToken(IntPtr hToken,
int impersonationLevel,
ref IntPtr hNewToken);
private bool impersonateValidUser(String userName, String domain, String password)
{ IntPtr token = IntPtr.Zero;
IntPtr tokenDuplicate = IntPtr.Zero; if (LogonUser(userName, domain, password, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, ref token) != 0)
{
if (DuplicateToken(token, 2, ref tokenDuplicate) != 0)
{
WindowsIdentity tempWindowsIdentity;
tempWindowsIdentity = new WindowsIdentity(tokenDuplicate);
impersonationContext = tempWindowsIdentity.Impersonate();
if (impersonationContext != null)
return true;
else
return false;
}
else
return false;
}
else
return false;
}
private void undoImpersonation()
{
impersonationContext.Undo();//回退为未更改前账户
}
protected void Page_Load(object sender, EventArgs e)
{
//临时更改为 跟 网络硬盘相同用户名密码的账户(此账户必须在网络盘有写入权限)本机也需要同样帐号密码的帐户
if (impersonateValidUser("administrator", "192.168.1.102", "kuqu123456"))
{
Response.Write(System.IO.File.Exists(@"\\192.168.1.102\share\C#高级编程\C#高级编程(第四版).pdf"));
undoImpersonation();
}
else
{
Response.Write("登陆失败");
} }
}
}