如果您的自托管应用程序可以引用System.Web
,那么您可以使用与它相同的MachineKey实现Microsoft.Owin.Host.SystemWeb
。
将configuration/system.web/machineKey
设置放入您的 App.config 中,就像在 Web.config 中一样。
参考参考System.Web
并添加以下类:
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);
}
}
然后使用该类设置您的身份验证选项:
var authenticationOptions = new OAuthBearerAuthenticationOptions
{
AccessTokenFormat = new TicketDataFormat(new MachineKeyDataProtector(
typeof(OAuthBearerAuthenticationMiddleware).Namespace, "Access_Token", "v1")),
AccessTokenProvider = new AuthenticationTokenProvider(),
};