C# 模拟用户在服务器路径上写入文件的权限是什么?
我使用了以下示例,但仍有例外: 系统.安全.权限.安全类型权限C# 模拟用户在服务器路径上写入文件的权限是什么?,c#,filestream,C#,Filestream,我使用了以下示例,但仍有例外: 系统.安全.权限.安全类型权限 以下是技术支持人员的诊断信息: 请求“System.Security.Permissions.SecurityPermission,mscorlib”类型的权限 管理员说用户凭证具有读写的完全权限 IntPtr userToken = IntPtr.Zero; bool success = External.LogonUser( "userID", "domain.com", "MyPasswor
以下是技术支持人员的诊断信息: 请求“System.Security.Permissions.SecurityPermission,mscorlib”类型的权限 管理员说用户凭证具有读写的完全权限
IntPtr userToken = IntPtr.Zero;
bool success = External.LogonUser(
"userID",
"domain.com",
"MyPassword",
(int) AdvApi32Utility.LogonType.LOGON32_LOGON_INTERACTIVE, //2
(int) AdvApi32Utility.LogonProvider.LOGON32_PROVIDER_DEFAULT, //0
out userToken);
if (!success)
{
throw new SecurityException("Logon user failed");
}
using (WindowsIdentity.Impersonate(userToken))
{
//Create a new GUID, extract the extension and create a new unique filename
string strFileGUID = System.Guid.NewGuid().ToString();
string extension = Path.GetExtension(attachment.AttachmentFileName);
string tempfilename = strFileGUID + extension;
string path = "ServerPath";
//Open a filestream and write the contents of the file at server path
FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write );
fs.Write(fileContent.Content, 0, fileContent.Content.Length);
fs.Flush();
fs.Close();
}
您能帮我解决这个问题吗?您的代码没有以完全信任的方式运行,或者没有获得正确的.Net权限来执行PInvoke或访问本地文件。它与Windows用户权限没有任何关系。链接的问题将帮助您开始.Net CAS-代码访问安全性-
一种简单的检查方法是在有问题的计算机上本地运行应用程序以获取本地驱动器-应该获得完全信任,并且不再获得CAS异常。首先
系统.安全.权限.SecurityPermission
是一个类而不是一个异常。你能添加你能看到的所有异常信息吗。内部异常、stacktrace和行号都很有用。下面是技术支持人员的诊断信息。请求“System.Security.Permissions.SecurityPermission,mscorlib,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”类型的权限失败。在VirusScanningPOC.VirusScan.Button3_单击(对象发送者,事件参数e)谢谢,但这并没有提供我们需要的信息。当异常发生时,你能发布一个屏幕截图吗?检查这篇文章,如果它适用于你>>是的,它的病毒扫描程序只是在服务器路径写入文件,防病毒程序会自动执行。当我们要求管理员修改web.config以包含信任级别标记时,他们拒绝了,我们在下面的文章中得到了最终解决方案: