OpenId를 사용하여 사이트의 현재 사용자를 추적하는 데 권장되는 솔루션은 무엇입니까? ID 및 주장 된 식별자를 가진 Users 테이블이 있고 내 사이트 특정 정보가 있고 사용자가 사이트 특정 정보를 업데이트하려고한다고 가정 해보십시오. 내장 멤버십을 사용하지 않는다는 것을 고려하면 현재 사용자를 추적하는 가장 좋은 방법은 무엇입니까? 사용자가 프로필을 업데이트하려고 할 때마다 openid에 요청을 보내어 ClaimedIdentifier를 가져와야합니까? 또는 UserName을 고유하게 적용하고 User.Identity.Name을 기반으로 사용자 정보를 얻으시겠습니까?OpenId 업데이트 프로필 정보
1
A
답변
1
나는 쿠키와 함께 할 :) ... 당신이 유용 내 대답을 찾을 수 있습니다 : 내 예에서 http://codesprout.blogspot.com/2011/03/using-dotnetopenauth-to-create-simple.html
public class User
{
[DisplayName("User ID")]
public int UserID{ get; set; }
[Required]
[DisplayName("Open ID")]
public string OpenID { get; set; }
[DisplayName("User Name")]
public string UserName{ get; set; }
}
: What OpenID solution is really used by Stack Overflow?
나는 또한에 대한 간단한 블로그 게시물을했습니다 나는 오픈 ID로 로그인 나는 쿠키에 저장,하지만 당신은 사용자 이름으로, 쿠키에 다른 정보를 저장할 수 있습니다 :
public class FormsAuthenticationService : IFormsAuthenticationService
{
public void SignIn(string userName, bool createPersistentCookie)
{
if (String.IsNullOrEmpty(serName)) throw new ArgumentException("The user name cannot be null or empty.", "UserName");
FormsAuthentication.SetAuthCookie(userName, createPersistentCookie);
}
public void SignOut()
{
FormsAuthentication.SignOut();
}
}
업데이트 2.0 :
이 같은 (이보기이다)에 대해 어떻게 : 당신이 로그인 (또는 당신이 Response.Cookies
을 설정할 수 있습니다 후
<%
if (Request.IsAuthenticated)
{
string name = Request.Cookies[Page.User.Identity.Name] == null ? string.Empty : Request.Cookies[Page.User.Identity.Name].Value;
if (string.IsNullOrEmpty(name))
{
name = Page.User.Identity.Name;
}
%>
[<%: Html.ActionLink(name, "Profile", "User")%> |
<%: Html.ActionLink("Log out", "LogOut", "User") %> |
<%
}
else
{
%>
[ <%: Html.ActionLink("Log in", "LogIn", "User") %> |
<%
}
%>
그리고 컨트롤러, 아마도 당신은 Profile
페이지로 이동하고 당신이 모델을로드하고있는 LogIn
방법) 때 당신은 쿠키에 표시 이름을 설정합니다 mydevarmy :
[Authorize]
[HttpGet]
public ActionResult Profile(User model)
{
if (User.Identity.IsAuthenticated)
{
userRepository.Refresh();
model = userRepository.FetchByOpenID(User.Identity.Name);
// If the user wasn't located in the database
// then add the user to our database of users
if (model == null)
{
model = RegisterNewUser(User.Identity.Name);
}
Response.Cookies[model.OpenID].Value = model.DisplayName;
Response.Cookies[model.OpenID].Expires = DateTime.Now.AddDays(5);
return View(model);
}
else
{
return RedirectToAction("LogIn");
}
}
당신은 내가 가진 작은 프로젝트에 대한 조치에서 모두 볼 수 있습니다. 곧 사용자 프로필을 게시하고 표시 이름을 변경할 수 있습니다 (현재 자동으로 생성 됨).
관련 문제
- 1. 필요한 OpenID 정보 저장
- 2. 데이터베이스에 OpenID 정보 저장
- 3. OpenID 소비자 세부 정보 구현
- 4. asp.net 회원 프로필 업데이트
- 5. Twitter API - 업데이트 프로필
- 6. python-twitter로 프로필 업데이트
- 7. Yii 업데이트 프로필 페이지
- 8. OpenID 사용자 프로필 정보를 얻으려면 어떻게해야합니까?
- 9. Facebook 앱에 프로필 정보 저장
- 10. 프로필 개체 + 모델보기 + 사용자 프로필 업데이트 MVC C#
- 11. 프로필 이미지 Twitter API 업데이트
- 12. 사용자 프로필 필드 업데이트 django
- 13. Openid - 인증 후 사용자 세부 정보
- 14. 공급자 간 OpenId 사용자 정보 (클레임) 검색
- 15. 고객 정보 업데이트
- 16. 업데이트 연락처 세부 정보
- 17. 업데이트 버전 정보
- 18. 앱의 점수 정보 업데이트
- 19. Silverlight에서 DataGrid 정보 업데이트
- 20. Ruby on Rails의 Authlogic에 프로필 정보 추가
- 21. Facebook API : 사용자 프로필 세부 정보 얻기
- 22. 기존 프로필 시스템과 통합 할 수있는 OpenID PHP 포럼이 있습니까?
- 23. Windows Server 2003의 모든 프로필 레지스트리 업데이트
- 24. 사용자 프로필 업데이트 중 문제가 발생했습니다.
- 25. 명령 줄 업데이트 프로 비전 프로필
- 26. OAuth를 사용하여 트위터 프로필 이미지 업데이트
- 27. 페이팔 가입, 결제 정보 업데이트
- 28. 업데이트 프로세스에 대한 세부 정보
- 29. RoR 업데이트 DB 레코드 정보
- 30. 사용자의 프로필 정보를 캐시하는 방법 (프로필이 변경되면 업데이트)?
동의. ASP.NET 멤버쉽을 사용하지 않더라도 FormsAuthentication 로그인 쿠키를 사용하여 로그인 한 사용자를 기억할 수 있고 사용할 수 있습니다. –
@Andrew, THE MAN 본인으로부터! 내가 옳은 일을하고있는 것처럼 느껴진다.) ... 어쨌든, 우리에게 DotNetOpenAuth를 주셔서 감사합니다. 그것은 내 인생을 훨씬 더 쉽게 만들어주고 그 대가로 모든 곳에서 구현하고 있습니다! – Kiril
@Lirik, 멋지다, 이것은 내가 갖고있는 것과 매우 흡사하기 때문에 나는 바른 길로 가고 있다고 생각한다. 그의 프로필 정보를 업데이트하려고 할 때 현재 사용자를 얻는 방법에 대해 조금 꼼짝도하지 않습니다. 쿠키를 설정하는 데 사용하는 이름은 친숙한 이름이므로 친숙한 이름을 가진 사용자가 둘 이상있을 수 없습니까? 또는 요청 된 ID를 사용합니까? 그렇다면 세션 상태를 사용하여 친숙한 이름으로 가야합니까? –