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

ari*_*ltk 10 .net c#

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

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

我该怎么检查?

War*_*War 2

我发现的关于此问题的唯一信息似乎指向 clickonce 部署。

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

显然你似乎已经回答了你自己的问题看这里......

我想在我的代码中检查用户是否有临时配置文件。

我该如何检查?

答案是...

如果执行应用程序的用户具有临时配置文件,我会收到异常: CryptographicException:“用户的配置文件是临时配置文件。”

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

不过,我听说过另一种选择,假设这是在 ASP.NET 应用程序的上下文中,您应该能够像这样获取当前配置文件......

ProfileCommon profile = HttpContext.Current.Profile as ProfileCommon;
Run Code Online (Sandbox Code Playgroud)

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

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

希望这可以帮助您解决一些问题。