자체 호스팅 응용 프로그램이 System.Web
을 참조 할 수있는 경우 Microsoft.Owin.Host.SystemWeb
과 동일한 MachineKey 구현을 사용할 수 있습니다.
Web.config에있는 것처럼 configuration/system.web/machineKey
설정을 App.config에 넣으십시오.
public class MachineKeyDataProtector : IDataProtector
{
private readonly string[] purposes;
public MachineKeyDataProtector(params string[] purposes)
{
this.purposes = purposes;
}
public byte[] Protect(byte[] userData)
{
return MachineKey.Protect(userData, this.purposes);
}
public byte[] Unprotect(byte[] protectedData)
{
return MachineKey.Unprotect(protectedData, this.purposes);
}
}
그런 다음 그 클래스를 사용하여 인증 옵션을 설정합니다 :
참조 참조 System.Web
하고 다음 클래스를 추가
var authenticationOptions = new OAuthBearerAuthenticationOptions
{
AccessTokenFormat = new TicketDataFormat(new MachineKeyDataProtector(
typeof(OAuthBearerAuthenticationMiddleware).Namespace, "Access_Token", "v1")),
AccessTokenProvider = new AuthenticationTokenProvider(),
};
방법 단지 수동으로 응용 프로그램 구성 파일에서 시스템 키를 설정하는 방법에 대한? 전통적인 웹 역할과 잘 맞으며, 작업자 역할에도 문제가 없어야합니다. 반복합니다 - 구성에서 키를 수동으로 설정하고 자동 구성에 의존하지 마십시오! – astaykov
답변 주셔서 감사합니다,하지만 App.config는 Web.config가 수행하는 것처럼 machine ket 설정을 지원하지 않습니다 ... –
그리고 app.config 파일에'system.web \ machineKey' 섹션을 갖지 못하게하는 것은 무엇입니까? 대답하기 전에 해봤습니까? – astaykov