小编Tom*_*eck的帖子

ASP.Net MVC 4的OAuthWebSecurity可以打开弹出窗口

我正在试图弄清楚如何使用ASP.Net MVC 4的新OAuthWebSecurity功能.点击Facebook或Twitter外部登录按钮是否有可能将表单发布到弹出窗口而不是刷新当前页面?在使用Javascript之前我曾在Twitter和Facebook上使用oauth,并且弹出窗口中会发生外部身份验证.异步返回结果后,弹出窗口将关闭.我可以使用MVC 4的新OAuthWebSecurity功能执行类似的操作吗?谢谢.

oauth-provider oauth-2.0 facebook-oauth asp.net-mvc-3 asp.net-mvc-4

9
推荐指数
1
解决办法
6912
查看次数

登录后,WebSecurity.CurrentUserName和User.Identity.Name为null

我正在为我的ASP.Net MVC 4网站找出SimpleMembership.我用自定义属性AccountTypeId扩充了UserProfile.我已经使用augmented属性更新了数据库表,并且可以在注册时将数据保存到数据库中.关于如何在用户登录后检索有关用户的数据,我有点困惑.

在我的帐户控制器中,我有一个登录操作,在用户登录时发布.这是我的代码:

[HttpPost]
    [AllowAnonymous]
    [ValidateAntiForgeryToken]
    public ActionResult Login(LoginModel model, string returnUrl)
    {
        if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe))
        {
            var userName = WebSecurity.CurrentUserName;
            var identityName = User.Identity.Name;
            var currentuserid = WebSecurity.GetUserId(model.UserName);
            var context = new UsersContext();
            var user = context.UserProfiles.SingleOrDefault(u => u.UserId == currentuserid);
            var accountTypeId = user.AccountTypeId;

            return RedirectToLocal(returnUrl);
        }

        // If we got this far, something failed, redisplay form
        ModelState.AddModelError("", "The user name or password provided is incorrect.");
        return View(model);
    }
Run Code Online (Sandbox Code Playgroud)

WebSecurity.CurrentUserName和User.Identity.Name都是空字符串,但是,我可以使用WebSecurity.GetUserId(model.UserName)检索UserId,因此可以检索用户数据,我可以获得accountTypeId.

当用户被重定向到登录页面时,从.cshtml页面调用User.Identity.Name会在我的页面上显示,这很奇怪.因此,在我的控制器的Login操作和目标页面之间的某处,User.Identity正在设置数据.

我假设自从我通过WebSecurity.Login检查后,WebSecurity将获得有关登录用户的信息,但似乎不是这样.

我错过了什么?

security asp.net-mvc-4 simplemembership

8
推荐指数
1
解决办法
8619
查看次数

asp.net mvc,jquery mobile,phonegap架构最佳实践

我正在使用ASP.Net MVC开发一个移动应用程序来生成HTML 5页面.HTML 5页面将使用jQueryMobile的loadPage来调用ASP.Net MVC以将页面加载到DOM中.然后它将使用jQueryMobiles的changePage根据用户与应用程序的交互使页面在DOM中处于活动状态.调用MVC应用程序将调用不同的Web服务来检索源数据以构造HTML.

我们计划在应用程序中使用PhoneGap,以便我们可以将完成的应用程序提交给Apple和Android商店.我的应用程序不需要与设备的本机功能(联系人,地理位置等)进行交互.因为我们不需要与实际设备的操作系统进行交互(除了使jQuery ajax调用MVC应用程序),那么真的需要PhoneGap吗?我上面描述的方法是否适合在移动设备上使用Web应用程序?

由于我的应用程序是asp.net mvc并将托管在我的服务器上,因此将什么内容发送到Android和Apple商店?这是PhoneGap发挥作用的地方吗?PhoneGap是否会创建某种提交给Android和Apple商店的可执行文件?然后将此可执行文件下载到客户端设备?我假设可执行文件然后将通过URL调用MVC站点来检索应用程序HTML?

我正确地看着这个吗?谢谢你的帮助.

architecture mobile-application jquery-mobile asp.net-mvc-3 cordova

6
推荐指数
1
解决办法
5778
查看次数

asp.net mvc TextAreaFor未被验证为必填字段

我有一个数据录入字段,我正在收集笔记.每个音符都需要音符数据元素.这是我的模特:

public interface INoteDataEntryViewModel : IMobilePageDataContract
{
    int CourseId { get; set; }

    [Required(ErrorMessage = @"Note is required")]
    String Note { get; set; }

    [DisplayName(@"Note Date")]
    DateTime NoteDate { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

您可以看到我有Note属性的Required属性.

我正在使用Razor来显示数据输入表单元素:

<div data-role="fieldcontain">
    @Html.LabelFor(m => m.Note)
    @Html.TextAreaFor(m => m.Note)
    @Html.ValidationMessageFor(m => m.Note)
</div>
Run Code Online (Sandbox Code Playgroud)

当我使用"@ Html.TextAreaFor"时,没有对必填字段进行验证,我可以提交表格.但是,如果我更改为"@ Html.TextBoxFor",则会对必填字段进行验证,但我无法提交表单.关于TextAreaFor验证失败原因的任何想法?我正在使用不引人注目的ajax并且是jQueryMobile.

谢谢你的帮助.

razor jquery-mobile unobtrusive-validation

6
推荐指数
1
解决办法
4341
查看次数

如何获取表的模式名称

我正在使用SQL Server 2008并具有以下查询:

SELECT SO1.name AS Tab, 
       SC1.name AS Col, 
       SO2.name AS RefTab, 
       SC2.name AS RefCol, 
       FO.name AS FKName
FROM dbo.sysforeignkeys FK  
INNER JOIN dbo.syscolumns SC1 ON FK.fkeyid = SC1.id AND FK.fkey = SC1.colid 
INNER JOIN dbo.syscolumns SC2 ON FK.rkeyid = SC2.id AND FK.rkey = SC2.colid 
INNER JOIN dbo.sysobjects SO1 ON FK.fkeyid = SO1.id 
INNER JOIN dbo.sysobjects SO2 ON FK.rkeyid = SO2.id 
INNER JOIN dbo.sysobjects FO ON FK.constid = FO.id
Run Code Online (Sandbox Code Playgroud)

如何检索表的模式名称?

谢谢你的帮助

sql-server sql-server-2008 database-schema

6
推荐指数
1
解决办法
2万
查看次数

Angualr2 AngularCLI App无法在node_modules库中找到HTML文件

我有一个Angular2 Angular-CLI应用程序,它使用通过NPM(node_modules文件夹)安装的自定义库.我的Angular2应用程序可以在设计时找到自定义库组件.但是,当通过ng服务提供应用程序时,应用程序错误在运行时出现404错误的HTML,通过NPM安装的自定义库中存在的CSS文件:

http:// localhost:4200/cdf-media-slider.component.html 404(未找到)

cdf-video.component是一个自定义的Angular2库,我正试图在我的应用程序中工作.如何让我的应用程序从node_modules中的库中提供组件和相应的HTML,CSS文件?

以下是Angular-CLI的详细信息:

angular-cli:1.0.0-beta.18
节点:6.6.0
os:win32 x64

以下是自定义组件加载HTML文件的方式:

import { ... }      from '@angular/core';

@Component({
    selector: 'cdf-media-slider',
    templateUrl: './cdf-media-slider.component.html',
    styleUrls: [ './cdf-media-slider.component.less' ]
})
export class CdfMediaGridComponent implements OnInit, AfterViewInit 
{
    //IMPLEMENTATION CODE HERE...
    ...
}
Run Code Online (Sandbox Code Playgroud)

cdf-media-slider.component.html和cdf-media-slider.component.less与此组件位于同一文件夹中.此代码最终驻留在node_modules中.我正在使用桶方法来表示代码,其中每个文件夹都有一个index.ts文件,用于导出它的内容.每个父文件夹都有一个index.ts,用于导出它的子索引等.

在我的客户端应用程序中使用此自定义组件,我正在导入组件,如下所示:

import { CdfMediaGridComponent }  from 'ng2cdf/index';
Run Code Online (Sandbox Code Playgroud)

VisualStudio代码可以找到此文件,因为我有智能感知,并且它不会抱怨它丢失.但是,在运行时,找不到HTML和CSS文件(404),应用程序正在应用程序的根目录中查找它们(http:// localhost:4200/cdf-media-slider.component.html).

如何获得HTML和CSS文件的相应路径?

谢谢你的帮助.

npm-install angular2-cli angular

6
推荐指数
1
解决办法
600
查看次数

Angular 6 PWA 应用程序在 iPhone 7 上添加到主屏幕后未更新

我创建了一个托管在 Firebase 上的 Angular 6 PWA。我在 iPhone 上的 Safari 中看到了该应用程序的正确版本。但是,当我将应用程序添加到主屏幕(独立)时,会安装旧版本。主屏幕应用程序永远不会更新。我已多次从主屏幕删除该应用程序并从 Safari 重新安装,但仍然使用旧版本。我什至在 Firebase 中删除了该应用程序的所有先前版本,但旧版本的应用程序仍然继续安装。

Safari 使用什么缓存在主屏幕上安装应用程序?为什么 PWA 应用本身根本不更新?请帮忙。

谢谢你的时间。

ios firebase-hosting progressive-web-apps angular6

6
推荐指数
0
解决办法
735
查看次数

AWS CloudFormation 更新 Lambda 代码以使用 S3 存储桶中的最新版本

我正在尝试创建一个支持 Lambda Function 和 AWS CodeBuild 项目的 CloudFormation 模板,用于将 .netcore 源代码构建到 S3 存储桶中部署的 zip 文件中。详情如下:

  • 使用具有多个 Lambda 函数的 GitHub mono-repo 作为 .netcore 解决方案中的不同项目
  • 每个 Lambda 函数(又名 .netcore 项目)都有一个 CloudFormation YAML 文件,该文件生成一个包含 Lambda 函数本身和 CodeBuild 项目的堆栈。
  • CodeBuild 项目是从 GitHub Web hook 启动的,它从 GitHub 子项目检索代码并使用其 buildspec.yaml 来控制构建应该如何发生。
  • buildspec 使用 .netcore 构建项目,然后将输出压缩并复制到目标 S3 存储桶
  • Lambda函数指向S3存储桶以获取源代码

这一切都运行得很好。我正在努力解决的是如何更新 Lambda 函数以使用 S3 存储桶中更新的编译源代码。

这是CloudFormation 模板的子集:

Resources:
Lambda:
    Type: AWS::Lambda::Function
    Properties:
        FunctionName: roicalculator-eventpublisher
        Handler: RoiCalculator.Serverless.EventPublisher::RoiCalculator.Serverless.EventPublisher.Function::FunctionHandler
        Code:
            S3Bucket: deployment-artifacts
            S3Key: RoiCalculatorEventPublisher.zip
        Runtime: dotnetcore2.1

CodeBuildProject:
  Type: AWS::CodeBuild::Project …
Run Code Online (Sandbox Code Playgroud)

aws-cloudformation aws-lambda aws-codebuild

6
推荐指数
1
解决办法
1万
查看次数

Symbolicate XCode4崩溃报告

我试图让XCode 4象征崩溃报告.我用谷歌搜索并关注此链接(https://github.com/chrispix/symbolicatecrash-fix)但停止了.说明说"要修复iOS崩溃报告符号,请将/ usr/local/bin/symbolicecrash移到旁边并复制到此repo中的版本." 好吧,我在Mac上找不到"/ usr/local/bin /".我是Mac世界的新手,所以我肯定有一些我不理解的东西.如果"/ usr/local/bin /"不存在,那么XCode 4在哪里找到symbolicatecrash?请指出一个新手正确的方向,因为我有很多错误需要修复.

谢谢汤姆

symbolicate symbolicatecrash xcode4

5
推荐指数
1
解决办法
5952
查看次数

Angular 4 ngComponentOutlet加载动态组件,但不呈现路径内容

我正在尝试加载不同的"父"组件,并通过ng-content在每个父组件中进行定位将路由内容注入到这些不同的父组件中.基本上,每个父组件根据设备宽度(小/移动,中/平板和大/桌面)处理导航和其他样板材料.

为我的应用程序中的每个路由生成的内容需要被转换(注入)到父组件中.每条路线的内容使用特定的注入点ng-content.

我可以使用替换父组件<ng-container *ngComponentOutlet="ResponsiveComponent;"></ng-container>.问题是我的路由生成内容没有被注入ng-content每个父组件的目标位置.

这是交换父组件的代码. AppPageComponent扩展ResponsiveComponent,根据媒体查询监视设备宽度.

@Component({
    selector: 'app-page',
    template: `
        <ng-container *ngComponentOutlet="ResponsivePageComponent;"></ng-container>     
    `,  
    styleUrls: [ './page.component.scss'],
    providers: []
})
export class AppPageComponent extends ResponsiveComponent implements OnInit, OnDestroy
{
    ResponsivePageComponent;

    constructor(
        injector: Injector,
        zone: NgZone)
    {
        super(zone);    
    }

    ngOnInit()
    {       
        this.IsSmallEnvironmentStream
            .subscribe
            (
                (isSmall: boolean) =>
                { 
                    if (isSmall)
                    { 
                        this.ResponsivePageComponent= AppPageSmallComponent;
                    }                   
                },
                (err) => { },
                () => {}
            );

        this.IsMediumEnvironmentStream
            .subscribe
            (
                (isMedium: boolean) =>
                { …
Run Code Online (Sandbox Code Playgroud)

angular2-ngcontent router-outlet angular ng-component-outlet

5
推荐指数
1
解决办法
3141
查看次数