로그오프 방법 제공하기

인증서버의 로그오프 페이지를 호출할 수 있는 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?