Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Asp.net中模拟上载文件 请考虑这种情况:_C#_Asp.net_Security_Iis 7_Impersonation - Fatal编程技术网

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