小编Raj*_*nan的帖子

我们可以在域驱动设计中使用ASP.NET标识吗?

我们的团队决定将Domain Driven Design架构用于我们的项目.现在正在进行讨论," 我们可以在DDD中使用ASP.NET身份吗?".

在DDD设计中使用ASP.NET标识是否有任何缺点.

我很困惑,要做出决定.

我已经搜索过了,但我没有想到.

任何帮助都会很明显.

c# asp.net asp.net-mvc domain-driven-design

12
推荐指数
2
解决办法
5170
查看次数

如何使用OAW客户端凭据开始使用OWIN Oauth保护WebApi?

我是OAuth 2.0的新手.

我已经相当阅读了OAuth 2.0文档,我看到有四种类型的方法可以获得授权.

获得授权的类型:

1.Implicit Grant
2.Resource Owner Password Credentials Grant
3.Client Credentials Grant
4.Authorization Code Grant
Run Code Online (Sandbox Code Playgroud)

就我而言,我有客户端应用程序,资源所有者,资源服务器和授权服务器.

资源服务器资源所有者使用他/她的凭证注册的网站.

客户端应用程序是第三方网站,它注册到资源服务器并获取客户端应用程序凭据以便将来访问它.

授权服务器从客户端应用程序检查客户端凭据,并将访问令牌授予客户端应用程序.

让我们考虑,资源服务器为"www.serversite.com",授权服务器为"www.authserver.com",客户端应用为"www.clientapp.com".

流:

步骤1:还假设www.serversite.com作为支付网关站点,客户必须将"www.serversite.com"集成到"www.clientapp.com"中,以创建,执行和退款.

第2步:客户端"www.clientapp.com"在服务器"www.serversite.com"中创建一个应用程序并获取API凭据.

步骤3:使用这些API凭证,客户端"www.clientapp.com"向auth服务器"www.authserver.com"发出访问令牌请求.

步骤4:如果来自客户端应用程序的API凭据有效,则auth服务器授予访问令牌.

步骤5:使用此访问令牌,客户端应用程序请求资源服务器进行进一步操作,如创建付款以及执行付款.

我的问题:

我正在使用ASP.NET Web API进行授权服务器,并使用OWIN.OAuth生成访问令牌,刷新令牌,授权以及授权客户端应用程序所需的所有内容.

但是,在这个链接(OWIN OAuth 2.0授权服务器)中,我发现,web api使用"资源所有者密码凭据授权"授权客户端应用程序,并且为在web api中实现Owin.OAuth提供的示例很棒,但我有很多困惑在我心中漫游.

  • 获得授权的哪种方式适合我的流程?(客户端凭据流或资源所有者密码凭据流)

  • 如何使用ASP.NET Web API(OWIN OAuth)实现客户端凭据授予类型?

  • 还提供一些可能对我有帮助的样本或链接?

提前致谢.

api oauth oauth-2.0 asp.net-web-api owin

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

使用WCF REST服务进行基本身份验证的内置方法?

我在我的WCF服务中使用基本身份验证.并且还使用ASP Membership provider进行身份验证.

Web.Config: 对于REST服务:

<webHttpBinding>
    <binding name="webHttpBinding" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="200065536" maxBufferPoolSize="200065536" maxReceivedMessageSize="200065536"   transferMode="Buffered" useDefaultWebProxy="true">
      <readerQuotas maxDepth="202048000" maxStringContentLength="202048000" maxArrayLength="202048000"
                    maxBytesPerRead="202048000" maxNameTableCharCount="202048000"/>
      <security mode="Transport">  
      </security>
    </binding>
  </webHttpBinding>
Run Code Online (Sandbox Code Playgroud)

验证类型和模式:

<serviceCredentials>
            <userNameAuthentication userNamePasswordValidationMode="MembershipProvider" membershipProviderName="CustomMemberShipProvider" />
</serviceCredentials>
Run Code Online (Sandbox Code Playgroud)

在调用任何方法之前,我的BasicAuthentication类.代码如下所示:

namespace BasicAuth.Service
{
    public class BasicAuthenticationInvoker : Attribute, IOperationBehavior, IOperationInvoker
    {
        #region Private Fields

        private IOperationInvoker _invoker;

        #endregion Private Fields

        #region IOperationBehavior Members

        public void ApplyDispatchBehavior(OperationDescription operationDescription,
                                          DispatchOperation dispatchOperation)
        {
            _invoker = dispatchOperation.Invoker;
            dispatchOperation.Invoker = this;
        }

        public void ApplyClientBehavior(OperationDescription operationDescription, …
Run Code Online (Sandbox Code Playgroud)

c# ajax wcf basic-authentication wcf-rest

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

如何在.NET中将类型A的对象转换为B类?

我创建了一个包含两个项目的项目.一个是控制台应用程序,而ohter是类库项目.

我将类库项目中的dll引用添加到控制台应用程序中.

现在,当我从类库项目返回一个对象,可以在控制台应用程序中检索它,但是如果我尝试强制转换它,它就无法正常工作.

它抛出错误,因为无法将类型a转换为类型b.

我正在努力解决这个错误很多个小时.

我的类库项目代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ClassLibrary1
{
    public class Class1
    {
        public object dyn()
        {
            var obj = new { ID = 2, Name = "Rajesh" };
            return obj;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在上面我返回了一个列表作为对象.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Linq;
using System.Data.SqlClient;
using System.Collections;
using System.Data;
using ClassLibrary1;
using System.Reflection;
using System.ComponentModel;
namespace ConsoleApplication2
{
    public class Program
    {
        public static …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net casting object

4
推荐指数
1
解决办法
1010
查看次数

使用Thread.Sleep(n)会导致性能问题吗?

我正在为我的项目使用Thread.Sleep(n).我听说Thread.Sleep会导致性能问题但不确定.

我的要求是:

等待5分钟增量,最多30分钟(5分钟延迟的6倍).在此之后,开始增加1小时并执行5次(另外5小时).

下面我提供了我在不同场景中使用Thread.Sleep(n)的示例代码:

Thread.Sleep(1000 * 60 * 5); //-------waiting for 5 minutes
var isDownloaded = false;
try
{
    var attempt = 0;
    while (attempt < 11)
    {
        isDownloaded = TryDownloading(strPathToDownload, strFileToDownload);
        if (isDownloaded)
            break;
        attempt++;
        if (attempt < 6)
            Thread.Sleep(1000 * 60 * 5); //--------waiting for 5 minutes
        else
        {
            if (attempt < 11)
                Thread.Sleep(1000 * 60 * 60); //-------waiting for 1 hour
            else
                break;
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

在上面的代码我试图下载最多11次下载尝试的文件.最初它等待5分钟,然后尝试下载第一次尝试的文件,如果失败则尝试接下来的5次尝试,每次尝试间隔5分钟.如果他们在前六次尝试中失败,则接下来的5次尝试,每次尝试间隔1小时.

所以我们决定在我们的控制台应用程序中使用Thread.Sleep来延迟时间.

这会导致任何问题或性能问题吗?

如果Thread.Sleep(n)导致性能问题,那么这将是一种更好的替代方式,而不是使用Thread.Sleep(n)?

最后,MSDN是否建议Thread.Sleep(n)有害或不应该使用?

c# multithreading

3
推荐指数
2
解决办法
3632
查看次数

使用VB.NET找不到AddOrUpdate()方法?

我试图将C#代码转换为VB代码:

在C#代码中,它可以调用AddOrUpdate方法,但是当我在VB中编码时,它在intellisense中找不到.

c#代码:

  protected override void Seed(eManager.Web.Infrastructure.DepartmentDB context){
         context.Departments.AddOrUpdate( d => d.Name,
                  new Department() { Name = "Engineering"},
                  new Department() { Name = "Sales"}
         );
     }
Run Code Online (Sandbox Code Playgroud)

VB代码:

但是当我用VB编写方法AddOrUpdate()时,我找不到它.DepartmentDB类的声明是这样的:

 Imports System
    Imports System.Collections
    Imports System.Collections.Generic
    Imports System.Linq
    Imports System.Text
    Imports System.Threading.Tasks
    Imports System.Data.Entity
    Imports eManager.Domain

    Public Class DepartmentDB
       Inherits DbContext
       Implements IDepartmentDataSource

    Private _DBEmployees As DbSet(Of Employee)
    Private _DBDepartments As DbSet(Of Department)

    Public ReadOnly Property Departments As IQueryable(Of Department) Implements IDepartmentDataSource.Departments
        Get
            Return _DBDepartments
        End Get
    End Property


    Public …
Run Code Online (Sandbox Code Playgroud)

c# vb.net iqueryable

0
推荐指数
1
解决办法
701
查看次数

如何在用户订阅网站一小时后发送验证邮件?

我刚刚遇到一种情况,即在订阅一小时后向新注册的用户发送验证邮件.

让我们考虑一个网站:www.sample.com和本网站,任何数量的用户都可以注册.注册完成后,我必须在注册时间一小时后向他们发送验证邮件.

我使用Sql Server 2008r2进行数据库存储.

如何在注册时间一小时后发送验证邮件?

c# asp.net

-1
推荐指数
1
解决办法
137
查看次数