0

我使用了下面的示例,但我仍然有异常:

System.Security.Permissions.SecurityPermission 下面是技术支持人员的诊断信息:请求类型“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(); 

} 

当我被困在这个问题上时,你能帮忙吗?

4

1 回答 1

0

您的代码没有以完全信任的方式运行,或者没有获得正确的 .Net 权限来执行 PInvoke 或访问本地文件。它与 Windows 用户权限无关。链接的问题将使您开始了解 .Net CAS - 代码访问安全性 -为什么我的 .NET 应用程序中出现 System.Security.Permissions.SecurityPermission 错误?.

一种简单的检查方法是在有问题的机器上本地运行您的应用程序以获得本地驱动器 - 应该获得完全信任并且不再获得 CAS 异常。

于 2012-05-02T19:56:19.400 回答