小编Sco*_*niz的帖子

C++ Getter/Setter(替代品?)

好吧,就在我读到的每个地方,我都读到了吸气剂/孵化器是"邪恶的".现在,作为一个经常在PHP/C#中使用getter/setter的程序员,我看不出他们是如何活着的.我已经读过他们打破了封装等等,但是,这是一个简单的例子.

class Armor{

  int armorValue;
public:
  Armor();
  Armor(int); //int here represents armor value
  int GetArmorValue();
  void SetArmorValue(int);
};
Run Code Online (Sandbox Code Playgroud)

现在,让我们说吸气剂和制定者是"邪恶的".如何在初始化后更改成员变量?

例:

Armor arm=Armor(128); //armor with 128 armor value

//for some reason I would like to change this armor value
arm.SetArmorValue(55); //if i do not use getters / setters how is this possible?
Run Code Online (Sandbox Code Playgroud)

让我们说无论出于何种原因,上述情况都不合适.如果我的游戏将护甲值限制在1到500之间怎么办?(没有护甲可以拥有超过500护甲或少于1护甲的护甲).

现在我的实施成了

void Armor::SetArmor(int tArmValue){
      if (tArmValue>=1 && tArmValue<=500)
         armorValue=tArmValue;
      else
         armorValue=1;
}
Run Code Online (Sandbox Code Playgroud)

那么,如果不使用getter/setter,我将如何施加此限制?如果不使用getter/setter,我还能如何修改属性?armorValue应该是案例1中的公共成员变量,还是案例2中使用的getter/setter?

好奇.多谢你们

c++

7
推荐指数
3
解决办法
4157
查看次数

公共证书在WCF中扮演什么角色?

我们拥有自己的证书,我们将其作为ClientCredentials传输客户端凭据的一部分使用,如下所示.

WSHttpBinding wsBinding = new WSHttpBinding();
wsBinding.Security.Mode = System.ServiceModel.SecurityMode.Transport;
wsBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate;
wsClient = new WSService.WSClient(wsBinding, new EndpointAddress(serviceURL));
wsClient.ClientCredentials.ClientCertificate.SetCertificate(StoreLocation.LocalMachine, StoreName.My, X509FindType.FindBySubjectName, clientCertificateSubjectName);
Run Code Online (Sandbox Code Playgroud)

我们的合作伙伴还向我们提供了他们在服务器上使用的证书副本,以便验证他们的服务器.如果没有我们使用此证书安装或完成任何操作,则对服务的调用目前成功.

我们正在使用ColdFusion,通常我们必须将它们安装到java证书存储区 - 但我很奇怪,当我没有对服务证书做任何事情时,服务通信在Visual Studio下工作

服务证书的作用/目的是什么?客户端是否将其安装在MMC证书可信人员中,或者在客户端配置中引用它,例如上面的WSHttpBinding?

c# coldfusion wcf

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

使用指针的C++简单减量(困惑)

我对这种行为感到有点困惑.任何人都可以解释

  void Decrement(int* x){
        *x--; //using this line, the output is 5 

        //*x=*x-1; //using this l ine, the output is 4

    }

    int main(){
        int myInt=5;
        Decrement(&myInt);
        cout<<myInt<<endl;
        return 0;
    }

    Output: 5
Run Code Online (Sandbox Code Playgroud)

c++

3
推荐指数
1
解决办法
2545
查看次数

ASP Core 3.0 API 令牌自定义令牌身份验证(不是 jwt!)

我们有一个 ASP CORE 3 API 项目,我们需要使用 API 令牌来保护它。这些 API 令牌将从数据库中提供和加载,但作为概念证明,我们将进行硬编码以进行测试。我们查看的所有令牌授权都是指 JWT。我们不想使用 JWT。我们只是提供允许访问我们的 API 的 API 密钥 - 然后用户可以通过在标头中传递令牌来调用 API 方法,例如 X-CUSTOM-TOKEN:abcdefg。

如何修改 startup.cs 和管道,以便在每个请求上检查此 X-CUSTOM-TOKEN 标头?在正确方向上的简单点会很棒。

编辑:好的,这看起来是一个很好的开始!非常感谢!

您的示例似乎表明用户 API 令牌是用户令牌。我们的要求是我们需要一个 API Key 来使用 API,然后还需要一个 User Token 来调用某些控制器。

示例:myapi.com/Auth/SSO(通过API Token和User Information登录,返回User信息+User Token)

myapi.com/Schedule/Create(需要 API 令牌标头和带有用户令牌的标头)

您能否建议如何修改您的代码以支持这一点?

asp.net api-authorization asp.net-core

3
推荐指数
1
解决办法
2419
查看次数

标签 统计

c++ ×2

api-authorization ×1

asp.net ×1

asp.net-core ×1

c# ×1

coldfusion ×1

wcf ×1