How to avoid 3rd person character run on wall?

Question: If my 3rd person character jumps against a cliff wall which is not absolutely perpendicularly, then he is able to run on that wall.

Any idea how to avoid it? I still have a ridgidbody on the character. I also tried to add a physics material with 0 friction to the cliff, but it doesn’t help. For the movement I use a character controller.

What I want, is that he slides down the wall.

thanks in advance

Ok I found a solution:

void OnControllerColliderHit(ControllerColliderHit hit) 
		// Sloping
		myAng = Vector3.Angle(Vector3.up, hit.normal);
		slopeDownTargetPosition = hit.normal;
		slopeDownTargetPosition.y = hit.normal.y *-1;
		Debug.DrawRay(hit.point, slopeDownTargetPosition, Color.white);
		if (cc.isGrounded && myAng > cc.slopeLimit)
			isSloping = true;
			cc.Move(slopeDownTargetPosition * Time.deltaTime); 
		} else {
			isSloping = false;

		// Pushing
		CollisonBody = hit.collider.attachedRigidbody;
		if (CollisonBody != null && !CollisonBody.isKinematic)
			CollisonBody.velocity += cc.velocity;


cc is my Charater Controller.