假设我们有这个模型:
public class Tiers
{
public List<Contact> Contacts { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
和
public class Contact
{
public int Id { get; set; }
public Tiers Tiers { get; set; }
public Titre Titre { get; set; }
public TypeContact TypeContact { get; set; }
public Langue Langue { get; set; }
public Fonction Fonction { get; set; }
public Service Service { get; set; }
public StatutMail StatutMail { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
使用EF7,我想从Tiers表中检索所有数据,包括Contact表中的数据,Titre表中的数据,TypeContact表中的数据等等......只需一条指令.使用Include/ThenInclude API,我可以编写如下内容:
_dbSet
.Include(tiers => …Run Code Online (Sandbox Code Playgroud) ASP.NET 5中是否存在MvcHtmlString的等效项?否则,我们如何正确地从我的自定义HTMLHelper方法呈现HTML输出?
在我的ASP.NET 5 MVC 6应用程序中,我想向Ajax发布一些数据到我的控制器.我已经使用ASP.NET MVC 5完成了这项工作,我在一个空白的ASP.NET MVC 5项目中测试了完全相同的代码并且它可以工作,但是新版本我不能,我不知道为什么.通过Ajax调用,我可以转到控制器,创建模型但字段为空(或布尔值为false).这是我的代码:
script.js:
var data = {
model: {
UserName: 'Test',
Password: 'Test',
RememberMe: true
}
};
$.ajax({
type: "POST",
url: "/Account/Login/",
data: JSON.stringify(data),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
// Do something interesting here.
}
});
Run Code Online (Sandbox Code Playgroud)
AccountController.cs:
[HttpPost]
public JsonResult Login(LoginViewModel model)
{
if (ModelState.IsValid)
{
//var result = await SignInManager.PasswordSignInAsync(model.UserName, model.Password, model.RememberMe, shouldLockout: false);
//if (result.Succeeded)
//{
// //return RedirectToLocal(returnUrl);
//}
ModelState.AddModelError("", "Identifiant ou mot de passe invalide");
return …Run Code Online (Sandbox Code Playgroud) 假设我们有这个模型:
public abstract class AbstractTableReferentielEntity {}
public class EstimationTauxReussite : AbstractTableReferentielEntity { }
Run Code Online (Sandbox Code Playgroud)
我为从AbstractTableReferentielEntity继承的所有类创建了一个扩展方法.
public static EntityItemViewModel ToEntityItem<T>(this T entity)
where T : AbstractTableReferentielEntity {}
Run Code Online (Sandbox Code Playgroud)
但对于一种特定类型的AbstractTableReferentielEntity(如EstimationTauxReussite),我想执行一个特定的操作,所以我创建了第二个扩展方法.
public static EntityItemViewModel ToEntityItem(this EstimationTauxReussite entity) {}
Run Code Online (Sandbox Code Playgroud)
所有扩展方法都在同一名称空间中声明.
之后,我从具有Entity Framework的数据库中检索一些数据:
protected List<EntityItemViewModel> GetAllActifEntityItem<T>()
where T : AbstractTableReferentielEntity
{
return Context
.Set<T>()
.Where(item => item.IsActif)
.Select(item => item.ToEntityItem())
.ToList();
}
Run Code Online (Sandbox Code Playgroud)
它汇编.
当运行时的T是EstimationTauxReussite类型时,它ToEntityItem在我调用时会进入错误的方法Select(item => item.ToEntityItem()).它没有进入最具体的扩展方法.有任何想法吗 ?
我想从我的ASP.NET vNext项目中的许多控制器中访问我公司的Active Directory,并将域名插入到我的config.json文件中,因此我可以从Configuration类访问它.我发现每次想要访问我的config.json时总是实例化一个新的Configuration对象很重,有没有办法通过IConfigurationAPI来访问初始化为Startup类的Configuration类?
我们基于身份验证开发了一个多租户应用程序.每个用户获得存储在数据库中的令牌会话,以告知用户是否仍然连接(具有到期时间).我将令牌(以及有关用户公司的其他信息)存储在用户中Claim.在身份检测到用户仍然连接(或不连接)之后,我需要检查用户令牌在我们的数据库中是否仍然有效(但只有在他连接时),所以我实现了AuthorizationHandler.
public TokenValidHandler(MyDatabaseService service)
{
// No information about the user connection string
}
protected override async void Handle(AuthorizationContext context, TokenValidRequirement requirement)
{
// Check the token in database
}
Run Code Online (Sandbox Code Playgroud)
我像这样注册我的处理程序:
services.AddAuthorization(options =>
{
options.AddPolicy("TokenValid",policy => policy.Requirements.Add(new TokenValidRequirement()));
});
services.AddSingleton<IAuthorizationHandler, TokenValidHandler>();
Run Code Online (Sandbox Code Playgroud)
因为我们有一个多租户应用程序,当用户退出应用程序并重新打开该站点时,他的连接字符串就会丢失(我们不想保留数据库字符串),所以我使用存储的信息Claim来恢复数据库访问.如果身份验证过期,则没有可用的信息Claim,因此我无法访问我的数据库.
正如我所看到的,TokenValidHandler即使用户没有连接也会实例化,这是正常的吗?因为在他没有的情况下,我想对我的数据库服务使用依赖注入,我不能,因为有关用户数据库访问的信息不在这里:身份没有及时检测到用户身份验证已过期.关于那个的任何想法?
asp.net-core-mvc asp.net-identity-3 asp.net-core asp.net-core-1.0
有没有办法在Identity API生成的cookie中存储用户的一些自定义数据?
我们正在构建一个多租户应用程序,因此多个公司可以访问我们的应用程序的同一个实例.这就是为什么我需要为特定用户在身份cookie中存储来自用户的公司代码,以便在关闭浏览器后返回Web应用程序时从用户检索数据.
是否可以通过覆盖该类HttpMethodAttribute并指定我们自己的方法来创建我们自己的 HTTP 方法supportedMethods?
事实上,根据情况,我们需要将View作为完整视图与_Layout一起返回,有时我们只需要返回该视图的PartialView。所以我的想法是放置一个自定义属性,例如,[HttpPartial]客户端会根据请求中使用的方法来判断它是否需要完整视图(GET 方法)或部分视图(PARTIAL 方法)。
我有一个简单@NgModule的boostrap 2组件:
// Global module for all Angular Component
@NgModule({
declarations: Components, // directives, components, and pipes owned by this NgModule
imports: [BrowserModule, HttpModule, FormsModule],
providers: Providers,
bootstrap: [Menu, Main]
})
export class MenuModule { }
Run Code Online (Sandbox Code Playgroud)
我想存储我的Main组件引导的引用MenuModule.我试图实现.then方法bootstrapModuleDynamic(),但我只获得组件的工厂.
// Bootstrap of module
platformBrowserDynamic()
.bootstrapModule(MenuModule)
.then((menuModule: NgModuleRef<MenuModule>) => {
var test: ComponentFactory<Main> = (<any>menuModule).bootstrapFactories[0];
});
Run Code Online (Sandbox Code Playgroud)
有任何想法吗 ?
我们使用一个IAuthorizationFilter类来过滤所有请求,并检查身份验证 cookie 中是否仍然存在自定义用户声明(多租户应用程序)。这些信息对于应用程序的其余部分至关重要。如果这些信息不存在,我们将重定向到登录页面。
public class TokenAuthorizationFilter : IAuthorizationFilter, IAsyncAuthorizationFilter
{
public TokenAuthorizationFilter()
{
// Some dependency injection ...
}
public void OnAuthorization(Microsoft.AspNet.Mvc.Filters.AuthorizationContext context)
{
CheckToken(context);
}
public Task OnAuthorizationAsync(Microsoft.AspNet.Mvc.Filters.AuthorizationContext context)
{
return CheckToken(context);
}
}
Run Code Online (Sandbox Code Playgroud)
我们像这样注册我们的过滤器
services.AddMvc(config =>
{
config.Filters.Add(typeof(TokenAuthorizationFilter));
});
Run Code Online (Sandbox Code Playgroud)
我想要访问的控制器的操作非常简单:
[Authorize(Policy = "TokenValid")]
public class HomeController : AjaxBaseController
{
public IActionResult Index()
{
return View();
}
}
Run Code Online (Sandbox Code Playgroud)
我们甚至没有达到我们的政策AuthorizeAttribute。正如我在堆栈跟踪中看到的, Identity 在检查 a 后尝试Microsoft.AspNet.Identity.SignInManager在中间件中的某个位置创建一个CookieAuthenticationOptions,我假设他正在尝试重新登录用户,但它没有检查我的 Filter ?登录在我们的应用程序中非常特殊,所以我不想让 Identity 自动登录我们的用户。当身份验证 cookie 过期时,我可以重现此问题。有任何想法吗 ?谢谢 !
asp.net-core ×6
c# ×4
ajax ×1
angular ×1
html-helper ×1
http-method ×1
inheritance ×1
typescript ×1