小编Dan*_*Dan的帖子

如何处理/拦截 Identity Server 4 .NET Core 引发的事件

我在 Identity Server 4 文档中读到可以像这样打开事件:

services.AddIdentityServer(options =>
{
    options.Events.RaiseSuccessEvents = true;
    options.Events.RaiseFailureEvents = true;
    options.Events.RaiseErrorEvents = true;
});
Run Code Online (Sandbox Code Playgroud)

这一切都很好,但我想知道如何侦听事件发生时的情况,例如“ApiAuthenticationSuccessEvent”。如何侦听 .NET Core Web 应用程序中引发的此事件?我不会将事件持久保存到某个事件存储中,我只需要知道何时引发此类事件,以便我可以检查该事件并使用该信息执行某些操作。

也许我以错误的方式处理这个问题,或者我错过了一些明显的东西!

asp.net-core-mvc asp.net-core identityserver4

5
推荐指数
2
解决办法
3706
查看次数

无法解密密码

我最近决定对我的密码使用更安全的密码。调用mc_encrypt($encrypt)方法返回加密的密码后,我对密码进行加密没有问题 。

通过调用进行解密时mc_decrypt($decrypt),该方法返回false。如您在mc_decrypt($decrypt)方法中所见,底部附近有一个if语句。我无法通过if语句。有谁知道我可以改变以获得$calcmac!==$mac真实的回报?谢谢

<?php

    class Encrypt {
    public $encryptionKey = 'xxxxxxx';

    public function __construct() {
    define('ENCRYPTION_KEY', $this->encryptionKey);
    }

    // Encrypt Function
    public function mc_encrypt($encrypt){
        $encrypt = serialize($encrypt);
        $iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC), MCRYPT_DEV_URANDOM);
        $key = pack('H*', $this->encryptionKey);
        $mac = hash_hmac('sha256', $encrypt, substr(bin2hex($key), -32));
        $passcrypt = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $encrypt.$mac, MCRYPT_MODE_CBC, $iv);
        $encoded = base64_encode($passcrypt).'|'.base64_encode($iv);
        return $encoded;
    }

    // Decrypt Function
    public function mc_decrypt($decrypt){
        $decrypt = explode('|', $decrypt);
        $decoded = base64_decode($decrypt[0]);
        $iv = base64_decode($decrypt[1]);
        $key …
Run Code Online (Sandbox Code Playgroud)

php encryption-symmetric

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