2010-03-07 109 views
8

在C#应用程序中,我使用DSACryptoServiceProvider创建了一个签名。如果执行apllication的用户具有临时配置文件,则会收到一个异常:CryptographicException:“用户的配置文件是临时配置文件。”如何知道执行应用程序的用户的配置文件是否为临时配置文件?

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

我如何检查?

+0

不一样的使用情况,但是这是一个类似的问题 - http://stackoverflow.com/questions/43762021/programmatically-detect-that-user-has-logged-in-with-temporary-profile – William 2017-05-04 18:18:43

回答

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

希望这有助于明确了一点东西给你。

相关问题