2010-03-07 3 views
8

C# 응용 프로그램에서는 DSACryptoServiceProvider를 사용하여 서명을 만듭니다. 응용 프로그램을 실행하는 사용자에게 임시 프로필이있는 경우 예외가 발생합니다. CryptographicException : "사용자 프로필이 임시 프로필입니다."응용 프로그램을 실행하는 사용자의 프로필이 임시 프로필인지 어떻게 알 수 있습니까?

DSACryptoServiceProvider.UseMachineKeyStore = true로 설정하면 오류가 해결 될 수 있습니다. 하지만 먼저이 변경이 필요한지 확인하고 싶습니다. 이를 위해 사용자 프로필에 임시 프로필이 있는지 확인하는 코드를 작성하고 싶습니다.

어떻게 확인할 수 있습니까?

+0

동일한 사용 사례는 아니지만 비슷한 질문입니다. - http://stackoverflow.com/questions/43762021/programmatically-detect-that-user-has-logged-in-with-temporary-profile – William

답변

1

이 문제에서 내가 발견 한 유일한 정보는 clickonce 배포를 가리키는 것 같습니다.

이 당신이 만들고있는 통화를하기 위해 당신이

는 분명히 자신의 질문은 이쪽을 봐 대답 것으로 보인다 ... 비 임시 프로필을 사용해야하기 때문에 겉으로 알려진 해결 ...

내 코드에서 사용자를 확인하고 싶습니다. 에 임시 프로필이 있습니다.

어떻게 확인할 수 있습니까? CryptographicException :

그 대답은 ...

apllication 을 실행하는 사용자는 임시 프로필이있는 경우, 나는 예외가 "는 사용자의 프로파일이있는 임시 입니다 윤곽."

오류가 발생하면 다른 프로필을 사용하여 실행해야합니다. 실제 코드를 실행하기 전에이 코드를 검사로 실행하는 테스트 방법을 사용할 수 있습니다.

난이이 같은 현재 프로필을 얻을 수 있어야 asp.net 응용 프로그램의 컨텍스트 내 가정,하지만 하나의 다른 옵션을 전해 들었다 ...

ProfileCommon profile = HttpContext.Current.Profile as ProfileCommon; 

거기에서 당신이해야

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

희망 ... 난이 여기에 기록 ProfileBase의 유형 생각, 프로필 인스턴스를 쿼리 할 수이 당신을 위해 조금 명확한 일을하는 데 도움이됩니다.

관련 문제