我如何知道执行应用程序的用户的配置文件是否是临时配置文件?

时间:2010-03-07 08:27:08

标签: c# .net

在C#应用程序中,我正在使用DSACryptoServiceProvider创建签名。如果执行应用程序的用户有临时配置文件,我会收到异常:CryptographicException:“用户的配置文件是临时配置文件。”

如果设置DSACryptoServiceProvider.UseMachineKeyStore = true,则可以解决故障; 但我首先要检查是否需要进行此更改。为此,我希望在我的代码中检查用户是否有临时配置文件。

我该怎么检查?

1 个答案:

答案 0 :(得分:1)

我在这个问题上找到的唯一信息似乎指向clickonce部署。

似乎没有已知的解决方法,因为您应该使用非临时配置文件来拨打您正在进行的通话...

显然你似乎回答了你自己的问题,看看......

  

我想在我的代码中检查用户   有暂时的个人资料。

     

我该怎么检查?

答案是......

  

如果用户执行apllication   有一个临时的个人资料,我得到了   异常:CryptographicException:   “用户的个人资料是   临时简介。“

看起来相当简单,如果您遇到错误,则需要使用其他配置文件执行。 在运行实际代码之前,您可以使用一种测试方法来执行此代码作为检查。

我听说过另一个选项,假设这是在asp.net应用程序的上下文中,你应该能够获得这样的当前配置文件...

ProfileCommon profile = HttpContext.Current.Profile as ProfileCommon;

从那里你应该能够查询配置文件实例,我相信它是一种在这里记录的ProfileBase ......

http://msdn.microsoft.com/en-us/library/ms151820(v=VS.100).aspx

希望这有助于为你清理一些事情。