C# 在Asp.net中模拟上载文件 请考虑这种情况:
我有一个网站,它的主机是C# 在Asp.net中模拟上载文件 请考虑这种情况:,c#,asp.net,security,iis-7,impersonation,C#,Asp.net,Security,Iis 7,Impersonation,我有一个网站,它的主机是IIS7.0。几乎每个IIS设置都是默认设置。我有一个上载文件的文件夹,ASP.Net用户对该文件夹具有写入权限。当前,IIS管理员取消此写入权限,他希望在Windows Server中添加一个本地用户,该用户可以对该文件夹具有写入权限。现在我的问题是如何在asp.net中模拟用户,以及此方法是否安全?我希望所有请求都按照默认的IISuser在服务器上执行,但我只希望模拟以上载文件 谢谢您需要的是部分模拟。您不需要模拟所有请求,但只需要模拟几个调用。我想你一定要看看这篇文
IIS7.0
。几乎每个IIS
设置都是默认设置。我有一个上载文件的文件夹,ASP.Net
用户对该文件夹具有写入权限。当前,IIS
管理员取消此写入权限,他希望在Windows Server
中添加一个本地用户,该用户可以对该文件夹具有写入权限。现在我的问题是如何在asp.net中模拟用户,以及此方法是否安全?我希望所有请求都按照默认的IIS
user在服务器上执行,但我只希望模拟以上载文件
谢谢您需要的是部分模拟。您不需要模拟所有请求,但只需要模拟几个调用。我想你一定要看看这篇文章 这就是它如何在登录用户的凭据下模拟一段代码,而其余的调用将使用默认的应用程序池标识进行处理
System.Security.Principal.WindowsImpersonationContext impersonationContext;
impersonationContext =
((System.Security.Principal.WindowsIdentity)User.Identity).Impersonate();
//Insert your code that runs under the security context of the authenticating user here.
impersonationContext.Undo();
谢谢,但是我应该将用户名和密码发送到哪里?我的意思是我想使用另一个用户进行模拟?在文章中有“在代码中模拟特定用户”一节。使用此功能,您可以传递自定义用户名和密码进行模拟,然后必须撤消该模拟。是否有任何方法不使用
API
call?在这种情况下,您必须部署另一个web站点/web服务,并将应用程序池标识设置为任意值,然后在代码中调用该web站点/web服务。in本文:在第节:如何模拟特定(固定)身份?
如何将经过身份验证的用户的登录令牌传递给WindowsIdentity
?