FubuMVC を使用する Web アプリケーション用にCurrentUserPropertyBinder (以下を参照) を実装しました。
public class CurrentUserPropertyBinder : IPropertyBinder
{
private readonly Database _database;
private readonly ISecurityContext _security;
public CurrentUserPropertyBinder(Database database, ISecurityContext security)
{
_database = database;
_security = security;
}
public bool Matches(PropertyInfo property)
{
return property.PropertyType == typeof(User)
&& property.Name == "CurrentUser";
}
public void Bind(PropertyInfo property, IBindingContext context)
{
var currentUser = //check database passing the username to get further user details using _security.CurrentIdentity.Name
property.SetValue(context.Object, currentUser, null);
}
}
自分のサイトにログインすると、これは正常に機能します。CurrentUserPropertyBinderには、タスクを実行するために必要なすべての情報が含まれています (つまり、_security.CurrentIdentity.Nameには正しいユーザーの詳細が含まれています)。
標準の fileDialog を開くfineUploader ( http://fineuploader.com/ ) を使用してファイルをインポートしようとすると、 _security.CurrentIdentity.Nameが空になります。
ユーザーが誰だったのか覚えていないようです。理由はわかりません。他のすべてのルートで機能しますが、ユーザーを覚えていないファイルをインポートします。
助けてください!前もって感謝します
注: ユーザーの認証に FubuMVC.Authentication を使用しています。