로그오프 방법 제공하기
인증서버의 로그오프 페이지를 호출할 수 있는 url을 설정해서 사용자가 필요에 따라 실행할 수 있도록 합니다.
[Home\Index.cshml]
@model NETS.SSO.Agent.MVC.Web.ViewModels.HomeIndexViewModel
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Home-Index</title>
</head>
<body>
User ID : @Model.UserID <br />
User Attributes <br />
@Model.UserAttribute <br />
<hr />
ErrorCode : @Model.ErrorCode
<hr />
ErrorMessage : @Model.ErrorMessage
<hr />
<a href="@Model.LogoffUrl">Logoff</a>
</body>
</html>
[HomeIndexViewModel.cs]
public class HomeIndexViewModel
{
public string ErrorCode { get; set; }
public string ErrorMessage { get; private set; }
public string LogoffUrl { get; private set; }
public string UserID { get; private set; }
public string UserAttribute { get; private set; }
internal void SetSSOSuccessData(AuthCheck authCheck)
{
// 인증된 사용자 ID를 추출한다.
UserID = authCheck.UserID;
ErrorCode = authCheck.ErrorCode.ToString();
// 인증된 사용자를 위해서 제공된 사용자 속성 정보를 추출해서 화면에 뿌릴
// 정보를 구성한다.
foreach (string key in authCheck.UserInfoCollection.Keys)
{
UserAttribute += key + "=" + authCheck.UserInfoCollection[key] + "; ";
}
// 로그오프 기능을 위해서 로그오프 URL을 구성한다.
LogoffUrl = authCheck.CurrentSSOSite.GetLogoffUrl(authCheck.CurrentRequest) + "?" +
authCheck.CurrentSSOProvider.RequestSSOSiteParam + "=" +
authCheck.CurrentSSOSite.ID + "&" +
authCheck.CurrentSSOProvider.GetParamName(ParamInfo.RETURN_URL) + "=" +
HttpUtility.UrlEncode(authCheck.ThisURL, Encoding.UTF8);
}
}
Last updated
Was this helpful?