2014-01-06 3 views
7

ASP.NET ID를 사용하여 MVC 5에서 사용자를 로그인하는 웹 사이트가 있습니다. 모든 것이 효과적입니다.ASP.NET ID 로그인

이제 나의 파트너는 WinForms 앱에 등록 된 사용자로 로그인해야합니다. Identity에서 사용하는 암호 해시 algorythm을 아는 사람이 있습니까? 아니면 WinForms 응용 프로그램에서 사용자를 인증 할 수 있습니까?

모든 팁이 절충됩니다.

감사합니다.

+0

완전히 다른 인증 방법이 아닌가요? asp.net ID는 활성 디렉토리를 사용하여 사용자를 인증합니다. 내가 그 암호를 검색 할 수 있다고 생각하지 않습니다. –

답변

14

MVC 응용 프로그램에서 Microsoft.AspNet.Identity.EntityFramework를 사용하고 있고 WinForm 응용 프로그램이 동일한 데이터베이스에 액세스 할 수있는 경우 MVC 응용 프로그램과 동일한 ConnectionString을 사용하도록 구성해야합니다. Nuget을 사용하여 WinForm 응용 프로그램에 Microsoft.AspNet.Identity.EntityFramework를 추가하십시오. 그러나 암호 해시를 둘러싼 모범 사례가 많이있다

public async Task<bool> VerifyUserNamePassword(string userName, string password) 
{ 
    var usermanager = new UserManager<IdentityUser>(new UserStore<IdentityUser>(new IdentityDbContext())); 
    return await usermanager.FindAsync(userName, password) != null; 
} 
+3

어떻게하면 로그 아웃 할 수 있습니까? – gog

+0

어떻게 사용자 이름의 텍스트를 얻을 수 있습니까? 'User.Identity.Name'처럼 – Amir

+0

@ggui 당신은 어떻게 사인 아웃하는 방법을 알아 냈습니까? 나는 같은 문제를 우연히 발견했다. – Izzy

0

당신은 System.Security.Cryptography.Net Winforms에서 안전하게 해시 암호를 사용 할 수 있습니다

그런 다음, 다음 코드는 사용자 이름과 비밀번호를 확인하는 데 사용할 수 있습니다. 가장 좋은 방법은 현재 해시 된 암호에 소금을 추가하는 것입니다. 이렇게하면 해독이 어렵습니다. 이전에는 개발자가 자신의 소금을 데이터베이스에 저장합니다. 이는 마치 자신을 발로 쏘는 것과 같습니다. 도움이되기를 희망하는이 프로젝트를 확인하십시오.

https://github.com/frankodoom/System.Security.Cryptography