在使用Microsoft.AspNet.Security的MVC 6 RCP 6中,我能够使用自定义的SecurityTokenValidator。
在RC中,Microsoft.AspNet.Security在Beta4中不存在,因此我将代码更改为使用Microsoft.AspNet.Authentication,请参见下文:(编译并运行但SecurityTokenValidator永远不会触发。
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace WPFTestApp2
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void MenuItem_Click(object sender, RoutedEventArgs e)
{
HelpWindow window = new HelpWindow();
window.Show();
}
}
}
答案 0 :(得分:0)
用
替换app.UseOAuthBearerAuthentication代码app.UseMiddleware<OAuthBearerAuthenticationMiddleware>(new ConfigureOptions<OAuthBearerAuthenticationOptions>(options =>
{
options.AutomaticAuthentication = true;
options.SecurityTokenValidators = new List<ISecurityTokenValidator> { validator };
}));
答案 1 :(得分:0)
你明白了吗?
今天发现CustomSecurityValidationToken没有触发,因为内部异常是throw(在我的情况下,内部验证基于params)。 尝试调试通知,如果它触发'AuthenticationFailed',你会在'context'变量中找到一个名为'Exception'的属性,如果有的话。
iteration